class Queue<T> {
  private data: T[] = []

  enQueue(element: T) {
    this.data.push(element)
  }

  deQueue() {
    return this.data.shift()
  }

  peek() {
    return this.data[0]
  }

  isEmpty() {
    return this.data.length === 0
  }

  size() {
    return this.data.length
  }

}


export default Queue